/**
 * Used to store all the information of the customers.  Includes their
 * loyalty rating and the number of points that they have accumulated.
 * @author sdm21
 */
public class Customer {

	private String id;
	private Name name;
	private String company_name;
	private int points;
	private String start_date;
	private String loyalty;
	
	/**
	 * create new customer
	 * @param id String id number
	 * @param name Name customer's name
	 * @param company_name String company name
	 * @param points int number of points earned
	 * @param start_date String customer start date
	 * @param loyalty String customer loyalty rating
	 */
	public Customer(String id, String name, String company_name, int points, 
			String start_date, String loyalty){
		this.id = id;
		this.name = new Name(name);
		this.company_name = company_name;
		this.points = points;
		this.start_date = start_date;
		this.loyalty = loyalty;
	}
	
	/**
	 * change ID number of the customer
	 * @param id String id number
	 */
	public void setID(String id){
		this.id = id;
	}
	
	/**
	 * change company name 
	 * @param company_name String company name
	 */
	public void setCompanyName(String company_name){
		this.company_name = company_name;
	}
	
	/**
	 * change customer name
	 * @param name Name object of customer's name
	 */
	public void setName(String name){
		this.name = new Name(name);
	}
	
	/**
	 * change number of points
	 * @param points number of points earned
	 */
	public void setPoints(int points){
		this.points = points;
	}
	
	/**
	 * change start date
	 * @param start_date String of the customer start date
	 */
	public void setStartDate(String start_date){
		this.start_date = start_date;
	}
	
	/**
	 * change loyalty value
	 * @param loyalty loyalty String customer loyalty rating
	 */
	public void setLoyalty(String loyalty){
		this.loyalty = loyalty;
	}
	
	/**
	 * return the ID number
	 * @return
	 */
	public String getID(){
		return id;
	}
	
	/**
	 * return the company name
	 * @return
	 */
	public String getCompanyName(){
		return company_name;
	}
	
	/**
	 * return the customer Name object
	 * @return
	 */
	public Name getName(){

		return name;
	}
	
	/**
	 * return the number of points the customer has
	 * @return
	 */
	public int getPoints(){
		return points;
	}
	
	/**
	 * return the start date of the customer
	 * @return
	 */
	public String getStartDate(){

		return start_date;
	}
	
	/**
	 * return the loyalty value of the customer
	 * @return
	 */
	public String getLoyalty(){
		return loyalty;
	}
}
